#include <my_head.h>

typedef struct _Msg{
    long type;
    char buff[128];
}msg_t;

int main(int argc, const char *argv[]){
    // 获取key值
    key_t my_key = ftok("/home/linux", 'A');
    if(-1 == my_key)
        ERR_LOG("ftok error");
    // 创建或者获取消息队列
    int msqid = msgget(my_key, IPC_CREAT|0666);
    if(-1 == msqid)
        ERR_LOG("msgget error");
    // 在消息队列中读取消息 并 打印到终端
    msg_t msg;
    long type;
    while(1){
        printf("请输入要读取的消息的类型:");
        scanf("%ld", &type); // 每次都输入 0
        if(-1 == msgrcv(msqid, &msg, sizeof(msg)-sizeof(msg.type), type, 0))
            ERR_LOG("msgrcv");
        if(!strcmp(msg.buff, "quit")){
            break;
        }
        printf("收到消息 : [%s]\n", msg.buff);
    }
    // 删除消息队列
    if(-1 == msgctl(msqid, IPC_RMID, NULL))
        ERR_LOG("msgctl error");
    return 0;
}